loop.run()
-GLXINFO_RE = re.compile(r"^(\S.*):\s*\n((?:^\s+.*\n)*)", re.MULTILINE)
-
-def _get_glx_extensions():
- """Return a tuple of server, client, and effective GLX extensions"""
-
- glxinfo = subprocess.Popen(["glxinfo"], stdout=subprocess.PIPE)
- glxinfo_output = glxinfo.communicate()[0]
- glxinfo.wait()
-
- glxinfo_map = {}
- for m in GLXINFO_RE.finditer(glxinfo_output):
- glxinfo_map[m.group(1)] = m.group(2)
-
- server_glx_extensions = set(re.split("\s*,\s*", glxinfo_map['server glx extensions'].strip()))
- client_glx_extensions = set(re.split("\s*,\s*", glxinfo_map['client glx extensions'].strip()))
- glx_extensions = set(re.split("\s*,\s*", glxinfo_map['GLX extensions'].strip()))
-
- return (server_glx_extensions, client_glx_extensions, glx_extensions)
-
def start_shell(perf_output=None):
bin_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
if os.path.exists(os.path.join(bin_dir, 'gnome-shell.in')):
# things that are explicitly logged via log() from javascript
env['GJS_DEBUG_TOPICS'] = 'JS ERROR;JS LOG'
- if use_tfp:
- # Decide if we need to set LIBGL_ALWAYS_INDIRECT=1 to get the
- # texture_from_pixmap extension; we take having the extension
- # be supported on both the client and server but not in the
- # list of effective extensions as a signal of needing to force
- # indirect rendering.
- (server_glx_extensions, client_glx_extensions, glx_extensions) = _get_glx_extensions()
-
- if ("GLX_EXT_texture_from_pixmap" in server_glx_extensions and
- "GLX_EXT_texture_from_pixmap" in client_glx_extensions and
- (not "GLX_EXT_texture_from_pixmap" in glx_extensions)):
- if options.verbose:
- print "Forcing indirect GL"
- # This is Mesa specific; the NVIDIA proprietary drivers
- # drivers use __GL_FORCE_INDIRECT=1 instead. But we don't
- # need to force indirect rendering for NVIDIA.
- env['LIBGL_ALWAYS_INDIRECT'] = '1'
-
if options.perf is not None:
env['SHELL_PERF_MODULE'] = options.perf
elif options.debug:
options.debug_command = "gdb --args"
-# Figure out whether or not to use GL_EXT_texture_from_pixmap.
-# FIXME: Move this to ClutterGlxPixmap like
-# CLUTTER_PIXMAP_TEXTURE_RECTANGLE=disable.
-use_tfp = os.environ.get('GNOME_SHELL_DISABLE_TFP', '') != ''
-
# We only respawn the previous environment on abnormal exit;
# for a clean exit, we assume that gnome-shell was replaced with
# something else.